1. Field of the Invention
This invention relates to data storage and more particularly relates to managing storage space allocation.
2. Description of the Related Art
Typical Storage Area Network (SAN) based file systems include a client and a metadata server. Generally, both the client and the metadata server are connected to the SAN. FIG. 1 is a schematic block diagram illustrating a common SAN file system configuration. The system includes a client, a metadata server, a SAN, and associated storage mediums. These components are typically connected by an IP network. In some instances, the client and the metadata server are integrated into the SAN. The client and the metadata server often perform direct metadata transactions aside from common data transactions within the SAN.
The metadata server is generally responsible for managing the allocation of storage space in the SAN, while the client services the user. A user is an application hosted by the client, a human user, or the like. The client requests that the metadata server allocate storage space on the SAN to store user data. The client then makes data transactions directly with the SAN in the space designated by the metadata server. Metadata transactions between the client and the metadata server often take place directly, aside from standard SAN data transfer transactions. However, metadata transactions may significantly increase usage of client resources, server resources, and network resources. Consequently, transaction latency and system resource costs may reduce the observed write throughput of user applications and may reduce overall performance of the SAN file system.
Generally, physical storage space within a SAN is divided into blocks. A block of space is the smallest unit allocated in a SAN environment. A block of space may contain multiple bits of information. In a SAN environment, blocks of storage space may be allocated to files for data storage. In a typical SAN environment, however, these blocks are still managed completely by the metadata server. A logical representation of the described units of allocated physical storage space is hereinafter referred to as a logical unit of space.
FIG. 2 is a schematic state diagram illustrating the life-cycle of logical units of space in a conventional SAN environment. The life-cycle of a unit of space generally includes two states: unallocated and allocated to file. A unit of space transitions from the unallocated state to the allocated state when a file is created or extended. If a file is deleted or truncated, the unit of space moves back to the unallocated state. Once returned to the unallocated state, the space may be allocated to new files. One problem associated with this arrangement is that the metadata server completely controls every phase of the life cycle. A metadata transaction between the metadata server and the client takes place each time a file is created or extended and each time a file is deleted or truncated. In a SAN environment, the large number of metadata transactions over the IP network required to create and delete files may reduce the overall performance of the system.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that manage storage space allocation. Beneficially, such an apparatus, system, and method would reduce the number of metadata transactions required to store and delete data in a data storage environment, while maintaining an accurate record of the status of the managed storage space.